package com.lehecai.core.service.queue;

import javax.jms.Queue;
import java.io.Serializable;
import java.util.Map;

/**
 * User: sunshow
 */
public interface JmsQueueService {

    /**
     * 发送序列化对象
     * @param queue 队列名
     * @param message 消息体
     * @throws Exception 队列操作异常
     */
    void send(String queue, Serializable message) throws Exception;

    /**
     * 发送文本消息
     * @param queue 队列名
     * @param message 消息体
     * @throws Exception 队列操作异常
     */
    void send(String queue, String message) throws Exception;

    /**
     * 发送序列化对象
     * @param queue 队列名
     * @param message 消息体
     * @throws Exception 队列操作异常
     */
    void send(Queue queue, Serializable message) throws Exception;

    /**
     * 发送文本消息
     * @param queue 队列名
     * @param message 消息体
     * @throws Exception 队列操作异常
     */
    void send(Queue queue, String message) throws Exception;

    /**
     * 发送一个空消息
     * @param queue 队列名
     * @throws Exception 队列操作异常
     */
    void send(String queue) throws Exception;

    /**
     * 发送多个Key对应的消息体
     * @param queue 队列名
     * @param message 消息体
     * @throws Exception 队列操作异常
     */
    void send(String queue, Map<String, Object> message) throws Exception;

    /**
     * 接收一个消息体
     * @param queue 队列名
     * @return 消息体对象
     * @throws Exception 队列操作异常
     */
    Object receiveAndConvert(String queue) throws Exception;

}
